﻿//
// Copyright (c) 2024 BPer
//

#ifndef INCLUDE_BPERCAPTURE_BPERSCREENCAPTURE_H_
#define INCLUDE_BPERCAPTURE_BPERSCREENCAPTURE_H_

#include "bperutil/buffer/BPerVideoBuffer.h"
#include <bperutil/sys/BPerThread2.h>
#include "BPerScreenCaptureHandleI.h"


class BPerScreenCapture :public BPerThread{
public:
	BPerScreenCapture();
	virtual ~BPerScreenCapture();

	int32_t m_isStart;

public:
	virtual void setDrawmouse(bool isDraw)=0;
	virtual bool getisDrawmouse()=0;

	virtual void setInterval(int32_t pinterval)=0;
	virtual int32_t init()=0;
	virtual void setVideoCaptureStart()=0;
	virtual void setVideoCaptureStop()=0;
	virtual BPerVideoBuffer* getOutVideoBuffer()=0;
	virtual BPerVideoBuffer* getPreVideoBuffer()=0;
	virtual int32_t getVideoCaptureState()=0;
	void stop();
protected:
    void run();
    virtual void startLoop()=0;
    virtual  void stopLoop()=0;



};

#endif /* INCLUDE_BPERCAPTURE_BPERSCREENCAPTURE_H_ */
